﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class DanhMuc_KhenThuongKyLuat : System.Web.UI.Page
{
    SecurityLib.Sec_AES _ps = new SecurityLib.Sec_AES();
    protected void Page_Load(object sender, EventArgs e)
    {
        
        if (!IsPostBack)
        {
            btnclose.Attributes.Add("onClick", "javascript:history.back(); return false;");
            //phan khen thuong
            EnabeControlsKhenThuong(false);
            btnsave.Enabled = false;
            btnedit.Enabled = false;
            btndelete.Enabled = false;
            codeid.Value = "";
            //phan ky luat
            EnabeControlsKyLuat(false);
            btnsave1.Enabled = false;
            btnedit1.Enabled = false;
            btndelete1.Enabled = false;
            codeid1.Value = "";
        }
    }
    private void EnabeControlsKhenThuong(bool state)
    {
        txtNgayKhenThuong.Enabled = state;
        drlDanhHieu.Enabled = state;
        txtNoiDung.Enabled = state;
        txtLyDo.Enabled = state;
        txtCapKhenThuong.Enabled = state;
        BindGrid(gridkhenthuong,true);
    }
    private void EnabeControlsKyLuat(bool state)
    {
        txtNgayKyLuat.Enabled = state;
        txtNoiDungKyLuat.Enabled = state;
        txtLyDoKyLuat.Enabled = state;
        txtCapKyLuat.Enabled = state;
        BindGrid(gridKyLuat, false);
    }
    private void BindGrid(GridView grid, bool khenthuong)
    {
        _dbDataContext _db = new _dbDataContext();
        string madoanvien = _ps.Decrypt(Request.QueryString["codeunionists"].Replace(" ", "+"),"gold",128);
        var val = from p in _db.tblKhenThuongKyLuats.Where(r => r.KhenThuong == khenthuong && r.MaDoanVien.Trim()==madoanvien)
                  select new { ID = p.ID, NgayKhenThuong = string.Format("{0:dd/MM/yyyy}",p.Ngay), NoiDung = p.NoiDung.Trim(), LyDo =p.LyDo.Trim(),DanhHieu=p.tblDanhMuc.TenDanhMuc.Trim()};
        grid.DataSource = val.ToList();
        grid.DataBind();
    }
    protected void btnadd_Click(object sender, EventArgs e)
    {
        codeid.Value = "";
        if (btnadd.Text == "Thêm mới")
        {
            XoaDuLieuVeKhenThuong();
            btnadd.Text = "Hủy";
            EnabeControlsKhenThuong(true);
            btnsave.Enabled = true;
            btndelete.Enabled = false;
            CatalogAccess.BindItemToDropDown(drlDanhHieu, 6);
        }
        else
        {
            btnadd.Text = "Thêm mới";
            EnabeControlsKhenThuong(false);
            btnsave.Enabled = false;
            btndelete.Enabled = true;
            XoaDuLieuVeKhenThuong();
        }
    }
    private void XoaDuLieuVeKhenThuong()
    {
        txtNgayKhenThuong.Text = "";
        txtNoiDung.Text = "";
        txtLyDo.Text = "";
        codeid.Value = "";
        drlDanhHieu.SelectedValue = "-1";
    }
    protected void btnsave_Click(object sender, EventArgs e)
    {
        string madoanvien = _ps.Decrypt(Request.QueryString["codeunionists"].Replace(" ", "+"),"gold",128);
        if (codeid.Value == "")//truong hoi them moi
        {
            bool success = CatalogAccess.InsertKhenThuongKyLuat(txtNgayKhenThuong.Text, int.Parse(drlDanhHieu.SelectedValue.ToString()),txtCapKhenThuong.Text, txtNoiDung.Text, txtLyDo.Text, madoanvien, true);
            if (success)
            {
                BindGrid(gridkhenthuong, true);
                lblmessage.Text = "Đã thêm thành công.";
                lblmessage.Visible = true;
                EnabeControlsKhenThuong(false);
                btnadd.Text = "Thêm mới";
            }
            else
            {
                lblmessage.Text = "Không thêm được, hãy kiểm tra lại thông tin.";
                lblmessage.Visible = true;
            }
        }
        else//truong  hop update
        {
            bool success = CatalogAccess.UpdateKhenThuongKyLuat(int.Parse(codeid.Value),txtNgayKhenThuong.Text,int.Parse(drlDanhHieu.SelectedValue.ToString()),txtCapKhenThuong.Text,txtNoiDung.Text,txtLyDo.Text);
            if (success)
            {
                BindGrid(gridkhenthuong, true);
                lblmessage.Text = "Đã cập nhật thành công.";
                lblmessage.Visible = true;
                btnsave.Enabled = false;
                btnedit.Text = "Hiệu chỉnh";
                btnadd.Enabled = true;
            }
            else
            {
                lblmessage.Text = "Không không cập nhật được, hãy kiểm tra lại thông tin.";
                lblmessage.Visible = true;
            }
        }
    }
    protected void gridkhenthuong_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        CatalogAccess.BindItemToDropDown(drlDanhHieu, 6);
        int id = int.Parse(gridkhenthuong.DataKeys[e.RowIndex].Value.ToString());
        codeid.Value = id.ToString();
        _dbDataContext _db = new _dbDataContext();
        var val = _db.tblKhenThuongKyLuats.Single(r => r.ID == id);
        txtNgayKhenThuong.Text = string.Format("{0:dd/MM/yyyy}",val.Ngay);
        drlDanhHieu.SelectedValue = val.DanhHieuID.ToString();
        txtNoiDung.Text = val.NoiDung.Trim();
        txtLyDo.Text = val.LyDo.Trim();
        EnabeControlsKhenThuong(false);
        lblmessage.Text = "";
        lblmessage.Visible = false;
        btnedit.Enabled = true;
        btndelete.Enabled = true;
        btnadd.Text = "Thêm mới";
        btnsave.Enabled = false;
    }
    protected void btnedit_Click(object sender, EventArgs e)
    {
        if (btnedit.Text == "Hiệu chỉnh")
        {
            EnabeControlsKhenThuong(true);
            btnadd.Enabled = false;
            btnsave.Enabled = true;
            btndelete.Enabled = false;
            btnedit.Text = "Hủy";
        }
        else
        {
            btnedit.Text = "Hiệu chỉnh";
            btndelete.Enabled = true;
            btnsave.Enabled = false;
            btnadd.Enabled = true;
            EnabeControlsKhenThuong(false);
        }
    }
    protected void btndelete_Click(object sender, EventArgs e)
    {
        bool success = CatalogAccess.DeleteKhenThuongKyLuat(int.Parse(codeid.Value));
        if (success)
        {
            BindGrid(gridkhenthuong, true);
            XoaDuLieuVeKhenThuong();
        }
        else
        {
            lblmessage.Text = "Không không cập nhật được, hãy kiểm tra lại thông tin.";
            lblmessage.Visible = true;
        }
    }
    private void XoaDuLieuVeKyLuat()
    {
        txtNgayKyLuat.Text = "";
        txtNoiDungKyLuat.Text = "";
        txtLyDoKyLuat.Text = "";
    }
    protected void btnadd1_Click(object sender, EventArgs e)
    {
        codeid1.Value = "";
        if (btnadd1.Text == "Thêm mới")
        {
            XoaDuLieuVeKyLuat();
            btnadd1.Text = "Hủy";
            EnabeControlsKyLuat(true);
            btnsave1.Enabled = true;
            btndelete1.Enabled = false;
        }
        else
        {
            btnadd1.Text = "Thêm mới";
            EnabeControlsKyLuat(false);
            btnsave1.Enabled = false;
            btndelete1.Enabled = true;
            XoaDuLieuVeKyLuat();
        }
    }
    protected void btnsave1_Click(object sender, EventArgs e)
    {
        string madoanvien = _ps.Decrypt(Request.QueryString["codeunionists"].Replace(" ", "+"),"gold",128);
        if (codeid1.Value == "")//truong hoi them moi
        {
            bool success = CatalogAccess.InsertKhenThuongKyLuat(txtNgayKyLuat.Text, 0,txtCapKyLuat.Text, txtNoiDungKyLuat.Text, txtLyDoKyLuat.Text, madoanvien, false);
            if (success)
            {
                BindGrid(gridKyLuat, false);
                lblmessage1.Text = "Đã thêm thành công.";
                lblmessage1.Visible = true;
                EnabeControlsKyLuat(false);
                btnadd1.Text = "Thêm mới";
            }
            else
            {
                lblmessage1.Text = "Không thêm được, hãy kiểm tra lại thông tin.";
                lblmessage1.Visible = true;
            }
        }
        else//truong  hop update
        {
            bool success = CatalogAccess.UpdateKhenThuongKyLuat(int.Parse(codeid.Value), txtNgayKyLuat.Text, 0,txtCapKyLuat.Text, txtNoiDungKyLuat.Text, txtLyDoKyLuat.Text);
            if (success)
            {
                BindGrid(gridKyLuat, false);
                lblmessage1.Text = "Đã cập nhật thành công.";
                lblmessage1.Visible = true;
                btnsave1.Enabled = false;
                btnedit1.Text = "Hiệu chỉnh";
                btnadd1.Enabled = true;
            }
            else
            {
                lblmessage1.Text = "Không không cập nhật được, hãy kiểm tra lại thông tin.";
                lblmessage1.Visible = true;
            }
        }
    }
    protected void btnedit1_Click(object sender, EventArgs e)
    {
        if (btnedit1.Text == "Hiệu chỉnh")
        {
            EnabeControlsKyLuat(true);
            btnadd1.Enabled = false;
            btnsave1.Enabled = true;
            btndelete1.Enabled = false;
            btnedit1.Text = "Hủy";
        }
        else
        {
            btnedit1.Text = "Hiệu chỉnh";
            btndelete1.Enabled = true;
            btnsave1.Enabled = false;
            btnadd1.Enabled = true;
            EnabeControlsKyLuat(false);
        }
    }
    protected void btndelete1_Click(object sender, EventArgs e)
    {
        bool success = CatalogAccess.DeleteKhenThuongKyLuat(int.Parse(codeid1.Value));
        if (success)
        {
            BindGrid(gridKyLuat, false);
            XoaDuLieuVeKyLuat();
        }
        else
        {
            lblmessage1.Text = "Không không cập nhật được, hãy kiểm tra lại thông tin.";
            lblmessage1.Visible = true;
        }
    }
    protected void gridKyLuat_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int id = int.Parse(gridKyLuat.DataKeys[e.RowIndex].Value.ToString());
        codeid1.Value = id.ToString();
        _dbDataContext _db = new _dbDataContext();
        var val = _db.tblKhenThuongKyLuats.Single(r => r.ID == id);
        txtNgayKyLuat.Text = string.Format("{0:dd/MM/yyyy}", val.Ngay);
        txtNoiDungKyLuat.Text = val.NoiDung.Trim();
        txtLyDoKyLuat.Text = val.LyDo.Trim();
        EnabeControlsKyLuat(false);
        lblmessage1.Text = "";
        lblmessage1.Visible = false;
        btnedit1.Enabled = true;
        btndelete1.Enabled = true;
        btnadd1.Text = "Thêm mới";
        btnsave1.Enabled = false;
    }
}